#include "typedef.h"
#include "stm32f10x.h"
#include <stdio.h>


/* @brief 初始化systick定时器，并设定定时周期
 * @param period_us 初始化定时器的周期，单位为us
 */
void Systick_init(int32 period_us) {
    if (SysTick_Config(SystemCoreClock / period_us)) {
        while (1);
    }
}
static uint32 ms_ticks = 0;
static uint32 ms_event_count = 0;

const uint32* const sysTick_ticks = &ms_ticks;

/// @brief 定时器中断处理函数
void SysTick_Handler(void) {
    ms_ticks++;
}

/* @brief   检查是否有定时事件发生，如果有，返回1，否则返回0 
 *          在主循环中调用此函数，返回1说明经过了一个周期，并执行特定的操作。
 *          如果主循环超过多个周期没有调用此函数，事件将被累计，
 *          因此，此函数返回1的总次数等于调用时经历的周期数。
 * @return  1: 有定时事件发生
 *          0: 无定时事件发生
 */
uint8 Systick_checkEventCount(void) {
    if (ms_event_count < ms_ticks){
        ms_event_count++;
        return 1;
    }else{
        return 0;
    }

}

